/* eslint-disable react/react-in-jsx-scope */
import { MenuItem } from '../types/menu';
import Layouts from '/@/Layouts';
import Login from '/@/views/Login';
import Load from '../components/asyncComponent';
import Icon from '/@/views/Icon';
import errorRouter from './models/error';
/**
 * 路由对象参数说明
 * 注意：详情菜单高亮:/components/button/details/:id带有details会自动截取，依次高亮的路径为：/components/button
 *  {
 *      name:           菜单栏及 tagsView 栏、菜单搜索名称（国际化）
 *      isAuthMenu      权限不通过是否显示菜单，true显示，则没有权限返回403页面，false不显示，则没有权限跳转404
 *      LayoutHide：    是否隐藏此路由
 *      isKeepAlive：   是否缓存组件状态
 *      isAffix：       是否固定在 tagsView 栏上
 *      isAffixdd:      是否添加tagsView 栏上
 *      cache：         是否开启缓存
 *      roles：         当前路由权限标识，取角色管理。控制路由显示、隐藏。超级管理员：admin 普通角色：common
 *      icon：          菜单、tagsView 图标，阿里：加 `icon-xxx`
 *      element：       组件，1.标签形式：<xx></xx>  2.函数懒加载形式:Load(() => import('/@/xxx'))
 *                      3.后端返回的字符串组件地址，注意：内置配置好了views 和page下面的所有tsx和jsx文件，例:components/Button || components/Button/index；在这里不需要写views和page
 * }
 */
const routes: MenuItem[] = [
  {
    path: '/login',
    element: <Login />,
    LayoutHide: true, //不渲染菜单
  },
  {
    path: '/404',
    element: Load(() => import('/@/views/NotFound/Error_404')),
    name: '404',
    LayoutHide: true, //不渲染菜单
  },
  {
    path: '*',
    redirect: '/404',
    LayoutHide: true, //不渲染菜单
  },
  {
    path: '/',
    element: <Layouts />,
    children: [
      {
        path: '/',
        element: Load(() => import('/@/views/Home')),
        name: 'menu.home',
        icon: 'HomeOutlined',
        isAffix: true,
        cache: true, //开启缓存
      },
      {
        path: '/icon',
        name: 'menu.icon',
        icon: 'FontColorsOutlined',
        element: <Icon></Icon>,
      },
      {
        path: '/test',
        name: '页面测试',
        icon: 'icon-kaifazujian',

        children: [
          {
            path: '/test',
            redirect: '/test/button',
            LayoutHide: true,
          },
          {
            path: '/test/button',
            element: 'test/Button',
            icon: 'icon-a-ziyuan4',
            name: 'menu.button',
          },
          {
            path: '/test/pro-table',
            name: 'proTable',
            icon: 'icon-biaodanzujian-shurukuang',
            element: 'test/proTable',
            roles: ['admin'],
          },
        ],
      },
      ...errorRouter,
    ],
  },
];

export default routes;
